TimesTenデータ・ストアに対するトランザクション・ログ・ハンドルを初期化して、永続モードでのトランザクション・ログへのアクセスを有効にします。hdbcパラメータは、TimesTenデータ・ストアへのODBC接続ハンドルです。ODBC接続ごとに1つのXLAハンドルのみを作成します。ODBC接続に対してXLAハンドルを作成してから、ttXlaCloseでクローズするまで、ODBC接続に対して他のODBCコールは発行しないでください。
tagは、永続ブックマークを識別する文字列です(「XLAブックマーク」を参照)。tagでは、optionsパラメータを指定して、新しいブックマークかシステムにすでに存在するブックマークかを識別できます。handleパラメータは、このコールによって初期化され、XLAに対する後続の各コールで指定する必要があります。
一部の処理は、ブックマークなしで実行できます。これらのタイプの処理を実行する場合は、XLANONEオプションを使用して、ブックマークなしでログにアクセスできます。次に、ブックマークなしでは実行できない処理を示します。
永続モードでは、複数のアプリケーションで同時にログから読取りを実行できます。この関数の使用方法については、「XLAの初期化およびXLAハンドルの取得」を参照してください。
この関数が成功すると、XLAは自動コミット・モードをOFFに設定します。
この関数が失敗しても、まだハンドルを作成する場合は、メモリー・リークを防ぐためにハンドルを閉じる必要があります。
注意: | 永続モードは、ディスクベースのロギングでのみサポートされています。 |
アクセス制御が有効になっている場合は、WRITE権限またはデータ・ストア・オブジェクトの所有権が必要です。
注意: | セッションをオープンすると、ハンドルへのXLAコールに対して権限の確認は続行されません。 |
SQLRETURN ttXlaPersistOpen(SQLHDBC hdbc,
SQLCHAR * tag,
SQLUINTEGER options,
out ttXlaHandle_h *handle)
パラメータ
|
型
|
説明
|
---|---|---|
hdbc | SQLHDBC | データ・ストアのODBCハンドル。 |
tag | SQLCHAR * | 永続ブックマークの識別子。optionsがXLANONEに設定されている場合はNULLを指定できます。許容最大長は31です。 |
options | SQLUINTEGER | ブックマーク・オプションは、次のとおりです。 |
handle | out ttXlaHandle_h * | このコールによって返されるトランザクション・ログ・ハンドル。このコールによって領域が割り当てられます。領域を解放するには、ttXlaCloseをコールする必要があります。 |
コールが成功すると、SQL_SUCCESSが返されます。返されない場合は、ttXlaErrorを使用してエラーをレポートします。
この例では、トランザクション・ログを永続モードでオープンし、xlahandleというハンドルを返して、mybookmarkという新しいブックマークを作成します。
SQLHDBC hdbc;
ttXlaHandle_h xlahandle;
rc = ttXlaPersistOpen(hdbc, ( SQLCHAR*)mybookmark,
XLACREAT, &xlahandle);
マルチスレッド・アプリケーションでは、スレッドごとに別々のXLAハンドルを作成する必要があります。複数のスレッドで同じXLAハンドルを使用する必要がある場合、1つのスレッドのみが一度に1つのXLA処理を実行できるように、mutexを使用してそのXLAハンドルへのスレッド・アクセスをシリアライズします。